/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package q10.Functii.FunctiiTrigonometrice;

/**
 *
 * @author valicu
 */

import q10.Functii.Functie;

/**
 * clasa Sin trateaza functia trigonometrica sinus,si mosteneste clasa
 * Functie
 * @author Bodor Alexandra,Beldie Anca
 *
 */
public class Sin extends Functie {
	/**
	 * functia calcul(double aux1) calculeaza valoarea functiei intr-un anumit pct
	 * @param aux1-primeste ca argument o variabila double reprezentand
	 * valoarea in care dorim sa calculam valoarea functiei
	 * @return returneaza un double reprez valoarea fucntiei

	public static double calcul(double aux1)
	{
	   return Math.sin(aux1);
	}
	/**
	 * returneaza chiar valoarea argumentului functiei

	public double calcul()
	{
	if (fStang == null)
	System.exit(1);
	return calcul(fStang.calcul());
	}
	/**
	 * returneaza un string reprezentand derivarea functiei

	public String derivare()
	{
	if (fStang == null)
	System.exit(1);
	return Produs.concatTermens(fStang.derivare(),
			Cos.concatTermeni(fStang.toString()));
			}
	/**
	 * calculeaza valoarea derivatei intr-un anumit punct

	public double calculDerivata()
	{
	   if (fStang == null)
	   System.exit(1);
	   return Produs.Calcul(fStang.calculDerivata(),
	   Cos.Calcul(fStang.calcul()));
	}
	public String toString()
	{
	   if (fStang == null)
	   System.exit(1);
	   return concatTermeni(fStang.toString());
	}
	/**
	 * este folosita pentru construirea unui sir de caractere reprez
	 * numele fuctiei si argumentul acesteia
	 * @param aux1 primeste ca argument un string reprezentang
	 * argu,emtul functiei
	 * @return returneaza un string reprezentand numele functiei
	 */
	public String concatTermeni(String aux1)
	{
	   String aux;
	   int nrP;
	   nrP = aux1.charAt(0) == '(' ? 0 : 2;
	   aux = "sin";
	   if (nrP != 0) aux += "(";
	   aux += aux1;
	   if (nrP != 0) aux += ")";
	   return aux;
	}
	public static double Calcul(double calcul) {
		return Math.sin(calcul);
	}
	/*public double calculeazaValoare() {
		return this.calcul();
	}*/
	}

